using System;
using System.Data;
using System.Runtime.Serialization;

namespace Producto.dbo.EN
{

    [Serializable]
    [System.Xml.Serialization.XmlType(Namespace="http://www.xpectro.biz/Producto/dbo/EN")]
    public class producto : XP.EN.EntidadGen<producto>
    {

        public const string TABLA = "dbo.producto";

        #region Constructores

        public producto()
            : base()
        {
        }
        protected producto(SerializationInfo info, StreamingContext context)
            : base(info, context)
        {
        }

        #endregion

        #region Propiedades

        public long? idproducto
        {
            get { return this.GetValor<long>("idproducto"); }
            set { this.SetValor("idproducto", value); }
        }
        public long? idsubcategoria
        {
            get { return this.GetValor<long>("idsubcategoria"); }
            set { this.SetValor("idsubcategoria", value); }
        }
        public long? idmarca
        {
            get { return this.GetValor<long>("idmarca"); }
            set { this.SetValor("idmarca", value); }
        }
        public string nombre_producto
        {
            get { return this.GetValorString("nombre_producto"); }
            set { this.SetValor("nombre_producto", value); }
        }
        public double? precio_compra
        {
            get { return this.GetValor<double>("precio_compra"); }
            set { this.SetValor("precio_compra", value); }
        }
        public double? precio_venta
        {
            get { return this.GetValor<double>("precio_venta"); }
            set { this.SetValor("precio_venta", value); }
        }
        public long? idunidad_medida
        {
            get { return this.GetValor<long>("idunidad_medida"); }
            set { this.SetValor("idunidad_medida", value); }
        }
        public int? cantidad_paquete
        {
            get { return this.GetValor<int>("cantidad_paquete"); }
            set { this.SetValor("cantidad_paquete", value); }
        }
        public int? existencia
        {
            get { return this.GetValor<int>("existencia"); }
            set { this.SetValor("existencia", value); }
        }
        public int? valor_umbral
        {
            get { return this.GetValor<int>("valor_umbral"); }
            set { this.SetValor("valor_umbral", value); }
        }
        public double? precio_costo_unidad
        {
            get { return this.GetValor<double>("precio_costo_unidad"); }
            set { this.SetValor("precio_costo_unidad", value); }
        }
        public double? precio_venta_unidad
        {
            get { return this.GetValor<double>("precio_venta_unidad"); }
            set { this.SetValor("precio_venta_unidad", value); }
        }
        public DateTime? fecha_vencimiento
        {
            get { return this.GetValor<DateTime>("fecha_vencimiento"); }
            set { this.SetValor("fecha_vencimiento", value); }
        }
        public bool? estado
        {
            get { return this.GetValor<bool>("estado"); }
            set { this.SetValor("estado", value); }
        }

        #endregion

        #region Métodos

        protected override void CrearEsquema()
        {
            this.datos.TableName = TABLA;
            this.datos.Rows.Add(new object[]{"idproducto", null, Convert.ToInt32(DbType.Int64).ToString(), null, null, null, null, 1, 0});
            this.datos.Rows.Add(new object[]{"idsubcategoria", null, Convert.ToInt32(DbType.Int64).ToString(), null, null, null, null, 0, 0});
            this.datos.Rows.Add(new object[]{"idmarca", null, Convert.ToInt32(DbType.Int64).ToString(), null, null, null, null, 0, 0});
            this.datos.Rows.Add(new object[]{"nombre_producto", null, Convert.ToInt32(DbType.AnsiString).ToString(), null, 50, null, null, 0, 0});
            this.datos.Rows.Add(new object[]{"precio_compra", null, Convert.ToInt32(DbType.Double).ToString(), null, null, null, null, 0, 0});
            this.datos.Rows.Add(new object[]{"precio_venta", null, Convert.ToInt32(DbType.Double).ToString(), null, null, null, null, 0, 0});
            this.datos.Rows.Add(new object[]{"idunidad_medida", null, Convert.ToInt32(DbType.Int64).ToString(), null, null, null, null, 0, 0});
            this.datos.Rows.Add(new object[]{"cantidad_paquete", null, Convert.ToInt32(DbType.Int32).ToString(), null, null, null, null, 0, 0});
            this.datos.Rows.Add(new object[]{"existencia", null, Convert.ToInt32(DbType.Int32).ToString(), null, null, null, null, 0, 0});
            this.datos.Rows.Add(new object[]{"valor_umbral", null, Convert.ToInt32(DbType.Int32).ToString(), null, null, null, null, 0, 0});
            this.datos.Rows.Add(new object[]{"precio_costo_unidad", null, Convert.ToInt32(DbType.Double).ToString(), null, null, null, null, 0, 0});
            this.datos.Rows.Add(new object[]{"precio_venta_unidad", null, Convert.ToInt32(DbType.Double).ToString(), null, null, null, null, 0, 0});
            this.datos.Rows.Add(new object[]{"fecha_vencimiento", null, Convert.ToInt32(DbType.DateTime).ToString(), null, null, null, null, 0, 0});
            this.datos.Rows.Add(new object[]{"estado", null, Convert.ToInt32(DbType.Boolean).ToString(), null, null, null, null, 0, 0});
        }

        #endregion

    }

}
